package com.hutao.medical.service;

import java.util.List;
import java.util.Map;


import com.hutao.medical.pojo.borrow.BorrowCheckRecord;
import com.hutao.medical.pojo.borrow.BorrowFunction;
import com.hutao.medical.pojo.borrow.BorrowRecord;
import com.hutao.medical.pojo.borrow.HospitalNote;
import com.hutao.medical.pojo.dto.MedBorrowDto;
import com.hutao.medical.query.BorrowQuery;

public interface BorrowService {
	/**
	 * 添加借阅记录信息
	 * 
	 * @param record
	 * @return
	 */
	int insert(BorrowRecord record);

	/**
	 * 根据uniquekey查询借阅信息
	 * 
	 * @param uniqueKey
	 * @return
	 */
	BorrowRecord selectByUniqueKey(String uniqueKey);

	/**
	 * 查询申请借阅记录信息
	 * 
	 * @param borrowQuery
	 * @return
	 */
	Map<String,Object> selectApplyBorrowByKeyWords(MedBorrowDto medBorrowDto);



	int updateApplyStatus(BorrowFunction borrowFunction);

	/**
	 * @author yimr 批量审批
	 * 
	 * @param BorrowCheckRecords
	 * @return
	 */
	int updateApplyStatusBatch(BorrowCheckRecord BorrowCheckRecords);

	/**
	 * 根据登陆名和借阅天数查询借阅信息总数
	 * 
	 * @param medBorrowDto
	 * @return
	 */
	int selectBorrowMedByLoginNameAndDaysCount(MedBorrowDto medBorrowDto);

	/**
	 * 根据登陆名和借阅天数查询借阅信息
	 * 
	 * @param medBorrowDto
	 * @return
	 */
	Map<String, Object> selectBorrowMedByLoginNameAndDays(MedBorrowDto medBorrowDto);

	/**
	 * 生成水印图片
	 * @param firstGuid
	 * @param applyName
	 * @return
	 */
	Map<String, Object> getMedResourceFile(String firstGuid, String applyName);

	//导出借阅审批到excel
	List<Map<String, Object>> exportBorrowApproveToExcel(BorrowQuery borrowQuery);

	//导出借阅统计到excel
	List<Map<String, Object>> exportBorrowStaitcsToExcel(BorrowQuery borrowQuery);

	//==================================================================
	/**
	 * 添加病案信息
	 * @param firstGuid
	 */
	HospitalNote addHospitalNote(String firstGuid);
	
	/**
	 * 添加借阅信息
	 * @param hospitalNote
	 * 				病案信息
	 * @param currentUser
	 * 				操作人
	 * @return
	 */
	int addMedRecordBorrow(HospitalNote hospitalNote,String currentUser);
	
	
	/**
	 * 获取病案借阅信息进行审核
	 * @param medBorrowDto
	 * @return
	 */
	Map<String,Object> getMedicalBorrowListToCheck(MedBorrowDto medBorrowDto);
	
	/**
	 * 根据用户名查询借阅中的firstGuidList
	 * @param borrowMan
	 * @return
	 */
    List<Map<String,Object>> getBorrowedFirstGuidList(String borrowMan);
    
    //移动端病案借阅
    List<Map<String,Object>> getMedicalBorrowSearchList_mobile(Map<String, Object> params);
    
    int getMedicalBorrowSearchListCount_mobile(Map<String, Object> params);
    
    
    
    
}
